package com.macro.mall.model;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.macro.mall.converter.LocalDateTimeConverter;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
@ExcelIgnoreUnannotated
public class BmsDailyAttendanceRecord extends BaseDO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    private Long id;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "用户名称")
    @ExcelProperty(value = "姓名", index = 0)
    private String userName;

    @ApiModelProperty(value = "岗位id")
    private Long jobId;

    @ApiModelProperty(value = "岗位名称")
    @ExcelProperty(value = "岗位", index = 1)
    private String jobName;

    @ApiModelProperty(value = "考勤日期")
    @ExcelProperty(value = "考勤日期", index = 2, converter = LocalDateTimeConverter.class)
    private LocalDate attendanceDate;

    @ApiModelProperty(value = "上班打卡时间")
    @ExcelProperty(value = "上班打卡时间", index = 3, converter = LocalDateTimeConverter.class)
    private LocalDateTime clockInTime;

    @ApiModelProperty(value = "上班打卡地址")
    private String clockInAddress;

    @ApiModelProperty(value = "上班打卡纬度")
    private String clockInLatitude;

    @ApiModelProperty(value = "上班打卡经度")
    private String clockInLongitude;

    @ApiModelProperty(value = "下班打卡时间")
    @ExcelProperty(value = "下班打卡时间", index = 4, converter = LocalDateTimeConverter.class)
    private LocalDateTime clockOutTime;

    @ApiModelProperty(value = "下班打卡地址")
    private String clockOutAddress;

    @ApiModelProperty(value = "下班打卡纬度")
    private String clockOutLatitude;

    @ApiModelProperty(value = "下班打卡经度")
    private String clockOutLongitude;

    @ApiModelProperty(value = "考勤状态：0-正常；1-上班缺卡；2-上班迟到；3-下班缺卡；4-下班早退；5-缺勤；")
    private String status;

    @ApiModelProperty(value = "考勤统计完成：0-未完成；1-已完成；")
    private Boolean isCompleted;
}
